package com.hoshiicloud.purchase.param;

import com.hoshiicloud.common.query.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 查询参数
 * </p>
 *
 * @author campchen
 * @since 2019-05-15
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "查询", description = "查询")
public class PoQueryParam extends PageParam {

    @ApiModelProperty(name = "companyId", value = "公司ID", dataType = "java.lang.Long", example = "")
    private Long companyId;

    @ApiModelProperty(name = "platformId", value = "平台ID", dataType = "java.lang.Long", example = "")
    private Long platformId;

    @ApiModelProperty(name = "storeId", value = "店铺ID", dataType = "java.lang.Long", example = "")
    private Long storeId;

    @ApiModelProperty(name = "source", value = "订单类型,1-销售订单 2-平台下单(平台入库)", dataType = "java.lang.Integer", example = "")
    private Integer source;

    @ApiModelProperty(name = "type", value = "1-预采单 2-实采单  3-补采单", dataType = "java.lang.Integer", example = "")
    private Integer type;

    @ApiModelProperty(name = "poNo", value = "采购单编号", dataType = "java.lang.String", example = "")
    private String poNo;

    @ApiModelProperty(name = "poDate", value = "采购单日期", dataType = "java.lang.LocalDateTime", example = "")
    private LocalDateTime poDate;

    @ApiModelProperty(name = "vendorId", value = "供应商id", dataType = "java.lang.Long", example = "")
    private Long vendorId;

    @ApiModelProperty(name = "vendorWhid", value = "供应商仓库", dataType = "java.lang.Long", example = "")
    private Long vendorWhid;

    @ApiModelProperty(name = "platformWhid", value = "平台仓库", dataType = "java.lang.Long", example = "")
    private Long platformWhid;

    @ApiModelProperty(name = "storeWhid", value = "店铺仓库", dataType = "java.lang.Long", example = "")
    private Long storeWhid;

    @ApiModelProperty(name = "orderAmount", value = "订单金额", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal orderAmount;

    @ApiModelProperty(name = "orderCount", value = "商品件数", dataType = "java.lang.Long", example = "")
    private Long orderCount;

    @ApiModelProperty(name = "memberId", value = "收货人id", dataType = "java.lang.Long", example = "")
    private Long memberId;

    @ApiModelProperty(name = "address", value = "收货地址", dataType = "java.lang.String", example = "")
    private String address;

    @ApiModelProperty(name = "consignee", value = "收货人的姓名", dataType = "java.lang.String", example = "")
    private String consignee;

    @ApiModelProperty(name = "country", value = "收货人的国家region", dataType = "java.lang.Integer", example = "")
    private Long country;

    @ApiModelProperty(name = "province", value = "收货人的省份", dataType = "java.lang.Integer", example = "")
    private Long province;

    @ApiModelProperty(name = "city", value = "收货人的城市", dataType = "java.lang.Integer", example = "")
    private Long city;

    @ApiModelProperty(name = "district", value = "收货人的地区", dataType = "java.lang.Integer", example = "")
    private Long district;

    @ApiModelProperty(name = "zipcode", value = "收货人的邮编", dataType = "java.lang.String", example = "")
    private String zipcode;

    @ApiModelProperty(name = "telphone", value = "收货人的电话", dataType = "java.lang.String", example = "")
    private String telphone;

    @ApiModelProperty(name = "mobile", value = "收货人的手机", dataType = "java.lang.String", example = "")
    private String mobile;

    @ApiModelProperty(name = "email", value = "收货人的邮箱", dataType = "java.lang.String", example = "")
    private String email;

    @ApiModelProperty(name = "deliveryDate", value = "交货日期", dataType = "java.lang.LocalDateTime", example = "")
    private LocalDateTime deliveryDate;

    @ApiModelProperty(name = "status", value = "订单状态  0-初始下单 2-已确认 3-执行中 4-已完成 5-已作废", dataType = "java.lang.Integer", example = "")
    private Integer status;

    @ApiModelProperty(name = "settleStatus", value = "结算状态  1-已结算  0-未结算", dataType = "java.lang.Integer", example = "")
    private Integer settleStatus;

    @ApiModelProperty(name = "settleAmount", value = "结算金额", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal settleAmount;
}
